// 全局请求封装
// const base_url = 'http://192.168.1.103:8921'
const base_url = ''
// 请求超出时间
const timeout = 5000
import { useUserStore } from "@/store";
// 需要修改token，和根据实际修改请求头
const request = (params) => {
	const userStore = useUserStore()
	const token = userStore.token
	let url = params.url;
	let method = params.method || "get";
	let data = params.data || {};
	let header = {
		'Authorization': token ? 'Bearer ' + token : '',
		'Content-Type': 'application/json;charset=UTF-8',
		...params.header
	}
	return new Promise((resolve, reject) => {
		uni.request({
			url: base_url + url,
			method: method,
			header: header,
			data: data,
			timeout,
			success(response) {
				const res = response
				// 根据返回的状态码做出对应的操作
				if (res.statusCode == 401) {
					uni.showToast({
						title: '登录状态异常,请重新登录!',
						icon: "error",
						duration: 2000
					})
					setTimeout(() => {
						uni.navigateTo({
							url: "/pages/login/index",
						})
					}, 1000);
					uni.clearStorageSync()
					console.error(res.data)
					reject(res.data.message);
				} else if (res.statusCode == 200) {
					// 成功请求,但是后端返回错误信息
					if (res.data && res.data.status !== 0) {
						uni.showToast({
							title: res.data.message,
							icon: "error",
							duration: 2000
						})
						console.error(res.data)
						reject(res.data.message);
					} else {
						// 成功
						console.log('数据回来', res.data);
						resolve(res.data);
					}
				}
			},
			fail(err) {
				console.log(err)
				uni.showToast({
					title: '网络异常或者其他错误，请刷新重试',
					icon: "error",
					duration: 2000
				})
				reject(err);
			},
			complete() {
				// 不管成功还是失败都会执行
				setTimeout(() => {
					uni.hideToast();
				}, 2000)
			}
		});
	}).catch(() => {});
};

export default request;